1. Field
One or more embodiments of the following description relate to a system and method for dynamic task migration in a multiprocessor computing environment.
2. Description of the Related Art
As applications such as multimedia being processed in real-time increase, demand for improvement of system performance for computing devices is increasing. Moreover, it becomes difficult to efficiently and rapidly process an application using only a single processor. Due to such a challenge, multiprocessor computing technologies have emerged along with development of semiconductor integration technologies. Multiprocessors provide many advantages in energy efficiency and performance improvement, compared with single processors.
To obtain more suitable performance in a multiprocessor computing environment, tasks may be executed sequentially, or in parallel, depending on the task.
An information device using a multiprocessor may include, for example, a personal portable terminal, a server, a mobile phone, a mobile computer, a Set-Top Box (STB), or a digital video device. The information device may be expected to be a major part of a future embedded system. Accordingly, the information device may enable various applications to be executed in a single device on demand by a user.
A multiprocessor may be classified into a homogeneous multiprocessor, and a heterogeneous multiprocessor. The homogeneous multiprocessor may connect homogeneous processors using the same Instruction Set Processor (ISP) through an interconnection mechanism, such as a bus or a Network on Chip (NoC). The heterogeneous multiprocessor may connect several ISPs to devices with hardware programming characteristics, through an interconnection mechanism. Here, the devices with hardware programming characteristics may include, for example, a Digital Signal Processor (DSP), a Field Programmable Gate Array (FPGA), a Reconfigurable Processor (RP), and the like.
In a heterogeneous multiprocessor computing environment, limited computing resources may be utilized to the maximum, to optimize a system suitable for an application. Additionally, the system may be reconstructed to be optimized when a change in an application occurs or when an environment changes, and the application is being executed on demand by a user.